home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Demos / Bowers Development / AppMaker 2.0b5 / Examples / TCL / AMReminder / AMReminderData.cp < prev    next >
Text File  |  1996-03-19  |  4KB  |  159 lines

  1. // AMReminderData.cp -- data access methods
  2. // Created 01/01/95 12:01 PM by AppMaker
  3.  
  4. //    This module contains data structures to access the data in your
  5. //    document's file(s). The intent is to isolate the details of the
  6. //    data representation into this module and to provide accessor
  7. //    functions for reading/writing logical pieces of the data.
  8. //    For your application, you will probably rewrite most of this.
  9. //    This module will not be regenerated by AppMaker unless you delete it.
  10.  
  11. #include <CDocument.h>
  12. #include "AMReminderData.h"
  13.  
  14. extern    OSType             gSignature;    /* The application's signature */
  15.  
  16. /*----------*/
  17. void    CAMReminderData::IAMReminderData    (CDocument        *theDocument)
  18. {
  19.     inherited::IDataFile ();
  20.     hasFile = FALSE;
  21.     itsDocument = theDocument;
  22.  
  23.     // your application-specific initialization
  24.     itsData = NULL;
  25.  
  26. } /* IAMReminderData */
  27.  
  28. /*----------*/
  29. void    CAMReminderData::Dispose    (void)
  30. {
  31.     DisposeData ();
  32.     ForgetObject (this);
  33. } /* Dispose */
  34.  
  35. /*----------*/
  36. void    CAMReminderData::OpenData    (SignedByte        permission)
  37. {
  38.     Open (permission);
  39.     hasFile = TRUE;
  40.  
  41.     ReadData ();
  42.  
  43. } /* OpenData */
  44.  
  45. /*----------*/
  46. void    CAMReminderData::Close        (void)
  47. {
  48.     inherited::Close ();
  49.     hasFile = FALSE;
  50.     // don't DisposeData because data may be needed by SaveAs
  51. } /* Close */
  52.  
  53. /*----------*/
  54. Boolean    CAMReminderData::Save        (void)
  55. {
  56.     if (hasFile) {
  57.         return (WriteData ());
  58.     } else {
  59.         // shouldn't be called in this case
  60.         return (FALSE);
  61.     }
  62. } /* Save */
  63.  
  64. /*----------*/
  65. Boolean    CAMReminderData::SaveAs        (SFReply    *macSFReply)
  66. {
  67. // If all of your data is in memory, then just close the current file
  68. // create and open a file, then save your data into the new file
  69. //
  70. // If some of your data is in the current file and not in memory,
  71. // you may have to create and open the new file,
  72. // copy data from the current file to the new file,
  73. // close the current file,
  74. // then save your data into the new file
  75.  
  76.     OSErr        ignoreErr;
  77.  
  78.     if (hasFile) {
  79.         Close ();
  80.     }
  81.     SFSpecify (macSFReply);
  82.     ignoreErr = HDelete (volNum, dirID, name);    // in case already exists
  83.     CreateNew (gSignature, kFileType);
  84.     Open (fsRdWrPerm);
  85.     hasFile = TRUE;
  86.  
  87.     return (Save ());
  88. } /* SaveAs */
  89.  
  90. /*----------*/
  91. void    CAMReminderData::Revert        (void)
  92. {
  93.     DisposeData ();
  94.     if (hasFile) {
  95.         ReadData ();
  96.     }
  97. } /* Revert */
  98.  
  99.  
  100. // The next few methods are for transferring data between the 
  101. // data file and your internal data structures, and for disposing
  102. // your data structures. They are called by Open, Close, etc.
  103. // Replace their bodies with whatever is suitable for your application
  104.  
  105. // define internal data structures to describe the file format:
  106. typedef struct {
  107.     short            stuff;
  108. } fileData;
  109.  
  110. /*----------*/
  111. void    CAMReminderData::ReadData        (void)
  112. {
  113.     itsData = ReadAll ();
  114. } /* ReadData */    
  115.  
  116. /*----------*/
  117. Boolean    CAMReminderData::WriteData        (void)
  118. {
  119.     WriteAll (itsData);
  120.     return (TRUE);
  121. } /* WriteData */    
  122.  
  123. /*----------*/
  124. void    CAMReminderData::DisposeData        (void)
  125. {
  126.     if (itsData != NULL) {
  127.         DisposHandle (itsData);
  128.         itsData = NULL;
  129.     }
  130. } /* DisposeData */
  131.  
  132.  
  133. // The remaining methods are for accessing your data as logical chunks.
  134. // These are just models for your own accessor functions;
  135. // they aren't called by any AppMaker-generated code.
  136. // Replace them with whatever is suitable for your application.
  137.  
  138. /*----------*/
  139. void    CAMReminderData::GetAMReminder    (void)
  140. {
  141. } /* GetAMReminder */
  142.  
  143. /*----------*/
  144. void    CAMReminderData::PutAMReminder    (void)
  145. {
  146. } /* PutAMReminder */
  147.  
  148. /*----------*/
  149. void    CAMReminderData::AddAMReminder    (void)
  150. {
  151. } /* AddAMReminder */
  152.  
  153. /*----------*/
  154. void    CAMReminderData::DeleteAMReminder    (void)
  155. {
  156. } /* DeleteAMReminder */
  157.  
  158. /* AMReminderData.cp */
  159.